package Model;

import java.util.ArrayList;

import DAO.InterfaceDAO.ClasseDAO;
import Factories.FactoryDAO;

public class Classe {

	private String nom;
	private ArrayList <Etudiant> eleves;
	private ClasseDAO cdao;
	private Professeur professeur;

	public Classe() {
		eleves= new ArrayList<Etudiant>();
		this.cdao=FactoryDAO.getInstance(null).createClasseDAO();
	}

	public Classe(String nom, ArrayList<Etudiant> eleves, Professeur professeur) {
		this.nom = nom;
		eleves= new ArrayList<Etudiant>();
		this.cdao=FactoryDAO.getInstance(null).createClasseDAO();
		this.professeur = professeur;
	}

	public String getNom() {
		return nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}

	public ArrayList<Etudiant> getEleves() {
		return eleves;
	}

	public void setEleves(ArrayList<Etudiant> eleves) {
		this.eleves = eleves;
	}

	public void addEtudiant(Etudiant e) {
		eleves.add(e);
		cdao.addEtudiant(e);
	}

	public boolean removeClass() {	
		return(cdao.delete(this));
	}

	public boolean addClass(Classe C) {
		return (cdao.create(C));
	}

	public ArrayList<Classe> listClasse() {
		return cdao.find();
	}

	public Professeur getProfesseur() {
		return professeur;
	}

	public void setProfesseur(Professeur professeur) {
		this.professeur = professeur;
	}

	public boolean initAPartirDeBD(String nomDeClasse) {
		boolean result = false;

		Classe cl = cdao.read(nomDeClasse);
		if(cl!=null)
		{

			this.eleves = cl.eleves;
			this.nom = cl.nom;
			this.professeur = cl.professeur;

			result = true;
		}
		return result;
	}

	public boolean exist() {
		return cdao.exist(this.nom);
	}

}
